public class Test {

    public static void main(String[] args) {
        int [] nums = {0,0,1,1,1,2,2,3,4,5,5,6,7};
        int ret = removeDuplicates(nums);
        System.out.println(ret);
    }

    public static int removeDuplicates(int[] nums) {
        int tmp = nums[0];
        int count = 0;
        for(int i = 1; i < nums.length ; i++){
            if(tmp == nums[i]){
                count++;
            }else{
                tmp = nums[i];
                nums[i - count] = nums[i];
            }
        }
        return nums.length - count;
    }

    //合并两个有序数组
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int end1 = m - 1;
        int end2 = n - 1;
        int end = nums1.length - 1;
        while(end1 >= 0 && end2 >= 0){
            if(nums1[end1] > nums2[end2]){
                nums1[end--] = nums1[end1--];
            }else{
                nums1[end--] = nums2[end2--];
            }
        }
        while(end2 >= 0){
            nums1[end--] = nums2[end2--];
        }
    }

//    //杨辉三角
//    public List<List<Integer>> generate(int numRows) {
//        List<List<Integer>> list = new ArrayList<>();
//        List<Integer> list1 = new ArrayList<>();
//        list1.add(1);
//        list.add(list1);
//
//        for (int i = 1; i < numRows; i++) {
//            //每一行的开始
//            List<Integer> tmp = new ArrayList<>();
//            tmp.add(1);
//            List<Integer> prevRow = list.get(i - 1);
//
//            //每一行的中间
//            for (int j = 1; j < i; j++) {
//                int val1 = prevRow.get(j);
//                int val2 = prevRow.get(j - 1);
//                tmp.add(val1 + val2);
//            }
//
//            //每一行的结束
//            tmp.add(1);
//            list.add(tmp);
//        }
//
//        return list;
//    }


}